package basic7;

public class J12_AccessModifier {
	
	//멤버변수
	String defaultname;
	private String privateName;
	protected String protectedName;
	public String publicName;
	
	//메서드
	String defaulthello(){return "안녕";}
	private String privatehello(){return "안녕";}
	protected String protectedhello(){return "안녕";}
	public String publichello(){return "안녕";}
	

	public static void main(String[] args) {
		
		//접근 지정자 : access modifier
		//객체지향 3가지 특성 중 캠슐화와 관련
		//default, private, protected, public
		
		//default로 선언된 클래스에 대한 객체 선언
		//같은 패키지내에 J12_AccessModifier과 J12_DefaultClass가 존재하므로 접근가능
		J12_DefaultClass defaultClass=new J12_DefaultClass();
		defaultClass.name="자바7";
		defaultClass.sayHello();
		
		
		//private로 선언된 멤버변수/ 메서드 접근 (중요!!)
		//ptivate로 선언된 멤버변수와 메서드는 멤버변수와 메서드를 선언한 클래스 내에서만 
		//접근가능하고 외부 클래스에서는 접근불가.
		J12_PrivateAccessor privateAccessor=new J12_PrivateAccessor();
//		privateAccessor.name="자바7";
//		privateAccessor.sayHello():
		//privat의 클래스 안에서 넣은 값을 불러오는 것은 가능하지만 다른 클래스에서 값을 집어넣는건 불가능.
		
		
		//ptotected로 선언된 멤버변수/ 메서드 접근 (중요!!)
		J12_ProtectedAccessor ProtectedAccessor=new J12_ProtectedAccessor();
		ProtectedAccessor.name="자바7";
		ProtectedAccessor.sayHello();
		
		//public로 선언된 멤버변수/ 메서드 접근 (중요!!)
		J12_PublicAccessor PublicAccessor=new J12_PublicAccessor();
		PublicAccessor.name="자바7";
		PublicAccessor.sayHello();

	}//메인

}//클래스


//접근 지정자가 default로 선언 된 클래스
class J12_DefaultClass{
	//접근 지정자가 default로 선언된 멤버변수
	String name;
	//접근 지정자가 default로 선언된 메서드
	String sayHello(){return "안녕!!";}
	
	
	
}//default 클래스

class J12_PrivateAccessor{
	//접근 지정자가 private로 선언된 멤버변수
	private String name;
	
	//접근 지정자가 private로 선언된 메섣,
	private String sayHello(){return "안녕!";}
	
	
}

class J12_ProtectedAccessor{
	//접근 지정자가 private로 선언된 멤버변수
	protected String name;
	
	//접근 지정자가 private로 선언된 메섣,
	protected String sayHello(){return "안녕!";}
	
	
}

class J12_PublicAccessor{
	//접근 지정자가 private로 선언된 멤버변수
	public String name;
	
	//접근 지정자가 private로 선언된 메섣,
	public String sayHello(){return "안녕!";}
	
	
}





























